primitive vs non primitive data structure